package com.tong.hao.ac.service.transfer.account;

import cn.buddha.jec.model.mapstruct.TongBasicTransfer;
import com.tong.hao.ac.api.model.in.account.AC020001Req;
import com.tong.hao.ac.service.domain.account.AcUserReqDo;
import com.tong.hao.ac.service.transfer.MapstructBeanType;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;

/**
 * @ClassName AC020001TransferReq
 * @Author 友野浩二
 * @Date 2020/5/3 16:36
 * @Description AC020001Req 与 AcUserReqDo 之间相互转换(属性赋值)
 * @Version 1.0
 */
@Mapper(componentModel = MapstructBeanType.BEAN_TYPE_SPRING)
public interface AC020001TransferReq extends TongBasicTransfer<AC020001Req, AcUserReqDo> {

    /**
     * @Author 友野浩二
     * @Description // AC020001Req 属性复制给 AcUserReqDo
     * @Param var1 AC020001Req
     * @return com.tong.hao.ac.service.domain.account.AcUserReqDo
     *
     * <pre>
     *     如果SOURCE和TARGET两个对象的属性名相同的且数据类型也是相同的,则是可以省略@Mapping。
     *     1- entity与dto中属性名相同的默认映射(如这两个类都有acName属性)
     *     2- entity与dto中属性名不同的，需要通过@Mapping明确关系来形成映射(如AC020001Req.phone对应AcUserReqDo.mobile)
     *     3- 形成映射关系的属性类型不同的,需要通过表达式转换数据类型类型(如Date对应String)
     *     4- 无映射关系属性被忽略
     * </pre>
     */
    @Mappings(
            @Mapping(source = "phone", target = "mobile")
    )
    @Override
    AcUserReqDo to(AC020001Req var1);

}
